/**
 * @description 公共的跳转页面带返回的方法
 * 
 * @property {String}  url 页面的地址
 * @property {String}  params  多个参数
 * @event {Function(url,...params)}  传递的url，和多个要传递的参数，参数值
 * @example 使用示例：挂载到vue原型上，之后直接this.挂载的名称（"/view/xx/xx","1要传递参数名称","1要传递参数值","2要传递参数名称","2要传递参数值"....）
 * @example 注意这里传递参数的时候使用了用了加密,使用的时候子组件得进行手动的解密decodeURIComponent(参数)
 *
 */

export  function toPage(url, ...params) {
	// 将传入的参数转换为一个对象形式
	const paramObj = {};
	params.forEach((param, index) => {
		// 假设参数传递的形式是键值对
		if (index % 2 === 0 && params[index + 1] !== undefined) {
			paramObj[param] = params[index + 1];
		}
	});

	// 构建查询字符串
	const queryString = Object.keys(paramObj).map(key => `${key}=${encodeURIComponent(paramObj[key])}`).join(
		'&');

	// 跳转到目标页面
	uni.navigateTo({
		url: `${url}?${queryString}`
	});
}

